package com.lancoo.ccas53.pojo.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.lancoo.ccas53.entity.CourseSelection;
import com.lancoo.ccas53.entity.CssRoundCourse;
import com.lancoo.ccas53.entity.CssStudentRange;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @Author: mabolin
 * @Date: 2024-06-04-10:54
 * @Description:
 */
@Data
public class RoundListDto implements Serializable {
    private Integer id;
    private Integer taskId;
    @ApiModelProperty("1预选 2正式选课")
    private Integer type;
    @ApiModelProperty("选课类型 1、预选 2、正选 3重修选课 4自学选课")
    private Integer selectType;
    @ApiModelProperty("选课权限 1、可退/可选  2、仅可选  3、仅可退")
    private Integer selectAuthority;
    @ApiModelProperty("轮次序号")
    private Integer round;
    @ApiModelProperty("选课轮次名")
    private String roundName;
    @ApiModelProperty("允许跨专业选课 0不允许1允许")
    private Integer crossMajor;
    @ApiModelProperty("选课开始时间")
    private String beginTime;
    @ApiModelProperty("选课结束时间")
    private String endTime;
    @ApiModelProperty("选课时间状态 0超过选课时间 1时间范围内 2未到选课时间")
    private Integer TimeStatus = 0;
    @ApiModelProperty("选课人数")
    private Integer studentNum;
    @ApiModelProperty("创建人id")
    private String createdUserId;
    private String createdUserName;
    private LocalDateTime createdTime;
    @ApiModelProperty("操作状态 0未开启  1已开启")
    private Integer isEnable;
    @ApiModelProperty("自选教学班的uuid，筛选后替换轮次id")
    private String uuidForOption;
    private String uuidForImportSelf;

    private List<CssStudentRange> studentRange;

    private List<CssRoundCourse> roundCourse;
    //课程对应学生范围
    private List<CourseSelection> courseSelectionList;

    private List<StudentRangeDto> studentRangeList;

    private Integer totalStudent;

    private List<CollegeDtoList> collegeDtoLists;


    @Data
    public static class CollegeDtoList {
        @JsonProperty("baseCollegeId")
        private String baseCollegeId;
        @JsonProperty("collegeName")
        private String collegeName;
        private List<GradesDTO> gradesDTOList;
    }

    @Data
    public static class GradesDTO {
        @JsonProperty("GradeName")
        private String gradeName;
        @JsonProperty("GradeID")
        private String gradeID;
    }
}
